﻿using System;
using System.Linq;
using System.Threading;

namespace Creventive.Wpf.ShellFactory.Modules
{
    /// <summary>
    ///   Service used to process unhandled exceptions.
    /// </summary>
    public interface IExceptionHandlingService
    {
        /// <summary>
        ///   Reports an exception.
        /// </summary>
        /// <param name = "thread">The thread the exception occurred in.</param>
        /// <param name = "exception">The exception.</param>
        /// <param name = "descriptionFormat">The description format.</param>
        /// <param name = "descriptionFormatArguments">The description format arguments.</param>
        void ReportException(Thread thread, Exception exception, string descriptionFormat = null, params object[] descriptionFormatArguments);
    }
}